package es.urjc.ldm.carrodecompra;

public class ListaArticulos {
	
	private InfoArticulos listProduct;
	private int numUnits;
	private double priceList;
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public ListaArticulos(){
		this.numUnits = 0;
		this.priceList = 0;
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public void addProduct(InfoArticulos prod){
		listProduct = prod;
		this.numUnits++;
		this.priceList = CalculadoraPrecios.calcularPrecio(this.numUnits, prod.getPrice(), prod.getOffers());
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public void setProduct(int numProd){
		if (numProd > 0){
			this.numUnits = numProd;
			this.priceList = CalculadoraPrecios.calcularPrecio(this.numUnits, listProduct.getPrice(), listProduct.getOffers());
		}else{
			removeAllProduct();
		}
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public void removeProduct(){
		this.numUnits--;
		if (numUnits == 0){
			listProduct = null;
			this.priceList = 0;
		}else{
			this.priceList = CalculadoraPrecios.calcularPrecio(this.numUnits, listProduct.getPrice(), listProduct.getOffers());
		}		
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public void removeAllProduct(){
		listProduct = null;
		this.numUnits = 0;
		this.priceList = 0;
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public InfoArticulos getListProduct(){
		return listProduct;
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public int getNumUnits(){
		return numUnits;
	}
	
	/** Constructor de la clase ListProduct, inicializa el contador de articulos y su precio
	 *
	 * @author manuelgblanco
	 * @version 1.0z 1 Abril, 2013.
	 * @param
	 * @return 
	 */
	public double getTotalPrice(){
		return priceList;
	}
}
